added missing, needed conversion.
authorØyvind Kolås <ok@src.gnome.org>
Tue, 4 Nov 2008 00:04:23 +0000 (00:04 +0000)
committerØyvind Kolås <ok@src.gnome.org>
Tue, 4 Nov 2008 00:04:23 +0000 (00:04 +0000)
* extensions/gegl-fixups.c: (conv_rgbaF_rgbAF), (init): added missing,
needed conversion.

svn path=/trunk/; revision=351

ChangeLog
extensions/gegl-fixups.c

index c4753aaef6732f4107da2b04ebb20a9b299933e1..f3be51f29155ddeeb245eabe3821fb643e7e6af8 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2008-11-04  Øyvind Kolås  <pippin@gimp.org>
+
+       * extensions/gegl-fixups.c: (conv_rgbaF_rgbAF), (init): added missing,
+       needed conversion.
+
 2008-10-01  Øyvind Kolås  <pippin@gimp.org>
 
        * COPYING.LESSER: renamed to ..
index 084db947bccfe171eb28de95ddc90365f1ee6520..49480ac54be303a6d6f7fbbf7c79f0dcf181ef64 100644 (file)
@@ -439,6 +439,30 @@ conv_bgrA8_rgba8 (unsigned char *srcc,
 }
 
 
+static long
+conv_rgbaF_rgbAF (unsigned char *srcc,
+                  unsigned char *dstc,
+                  long           samples)
+{
+  float *src = (void *) srcc;
+  float *dst = (void *) dstc;
+  long           n   = samples;
+
+  while (n--)
+    {
+      float alpha = src[3];
+      dst[0] = src[0] * alpha;
+      dst[1] = src[1] * alpha;
+      dst[2] = src[2] * alpha;
+      dst[3] = alpha;
+      src   += 4;
+      dst   += 4;
+    }
+  return samples;
+}
+
+
+
 #define conv_rgb8_rgbAF    conv_rgb8_rgbaF
 
 int init (void);
@@ -501,6 +525,7 @@ init (void)
 #define o(src, dst) \
   babl_conversion_new (src, dst, "linear", conv_ ## src ## _ ## dst, NULL)
 
+  o (rgbaF, rgbAF);
   o (rgb8, rgbaF);
   o (rgb8, rgbAF);
   o (rgba8, rgbaF);